package com.hspedu.extends_;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @Author Stringzhua
 * @Date 2024/3/1 17:29
 * description:ExtendsDetail Base的子类
 */
//输入ctrl+h 可以看到类的继承关系
public class Sub extends Base{
    public Sub(String name,int age){
//        //1.想调用父类的无参构造器,如下或者什么都不写, 默认就是调用super()
//        super();//父类的无参构造器
        //2.调用父类的Base(String name)构造器
//        super("爪爪爱吃蒸饺");
        //3.调用父类的Base(String name,int age)构造器
//        this("hsp");
        super("king",20);//03

        System.out.println("子类Sub(String name,int age)构造器被调用....");

//        Arrays.sort(1);
    }

    public Sub(){//构造器 子类构造器
//        super();//默认调用父类的无参构造器
        super("smith",10);
        System.out.println("子类Sub()构造器....");
    }

    //当创建子类对象时,不管使用子类的哪个构造器,默认情况下总会去调用父类的无参构造器
    public Sub(String name){
        super("tom",30);
        //do nothing
        System.out.println("子类的Sub构造器被调用");
    }

    public void sayOk(){//子类方法
        //我们发现 父类的非private的属性和方法
        //都可以访问
        //即即非私有的属性和成员方法可以在子类直接访问
        System.out.println("n1 = " + n1);
        System.out.println("n2 = " + n2);
        System.out.println("n3 = " + n3);
//        System.out.println("n4 = " + n4);//private的属性不能访问
        test100();
        test200();
        test300();
//        test400();//private的成员方法不能访问
        //要通过父类提供公共的方法去访问私有属性
        System.out.println("getN4() = " + getN4());
    }
}
